package com.team.game.framework;

import android.graphics.Canvas;
import android.view.MotionEvent;

import com.team.game.Game.Gestures;
import com.team.game.Game.Levels;

public abstract class Screen {
    protected final Game game;

    protected Screen (Game game) {
        this.game = game;
    }

    /**
     * обновляют состояние экрана
     */
    public abstract void update();

    /**
     * представляет экран пользователю
     */
    public abstract void present(Canvas canvas);

    /**
     * вызываются при постановке игры на паузу
     */
    public abstract void pause();

    /**
     * вызываются при возобновлении игры после паузы(а также сразу после создания экрана)
     */
    public abstract void resume();

    /**
     * вызывается экземпляром Game при вызове Game.setScreen(). В результате текущий экземпляр Screen освобождает системные ресурсы
     */
    public abstract void dispose();

    public abstract void back();

    public abstract Level getLevel();

    public abstract Gestures getGestures();

    public abstract boolean touchEvent (MotionEvent motionEvent);


}
